﻿//using Microsoft.AspNetCore.Mvc;
//using System;
//using System.Collections.Generic;
//using System.Linq;
//using WalkingTec.Mvvm.Core;
//using WalkingTec.Mvvm.Core.Extensions;
//using WalkingTec.Mvvm.Mvc;
//using FC.ViewModel.TaskItemVMs;
//using FC.Model;


//namespace FC.Controllers
//{
    
//    [AuthorizeJwtWithCookie]
//    [ActionDescription("任务管理")]
//    [ApiController]
//    [Route("api/TaskItem")]
//	public partial class TaskItemController : BaseApiController
//    {
//        [ActionDescription("Sys.Search")]
//        [HttpPost("Search")]
//		public IActionResult Search(TaskItemSearcher searcher)
//        {
//            if (ModelState.IsValid)
//            {
//                var vm = Wtm.CreateVM<TaskItemListVM>();
//                vm.Searcher = searcher;
//                return Content(vm.GetJson(enumToString: false));
//            }
//            else
//            {
//                return BadRequest(ModelState.GetErrorJson());
//            }
//        }

//        [ActionDescription("Sys.Get")]
//        [HttpGet("{id}")]
//        public TaskItemVM Get(string id)
//        {
//            var vm = Wtm.CreateVM<TaskItemVM>(id);
//            return vm;
//        }

//        [ActionDescription("Sys.Create")]
//        [HttpPost("Add")]
//        public IActionResult Add(TaskItemVM vm)
//        {
//            if (!ModelState.IsValid)
//            {
//                return BadRequest(ModelState.GetErrorJson());
//            }
//            else
//            {
//                vm.DoAdd();
//                if (!ModelState.IsValid)
//                {
//                    return BadRequest(ModelState.GetErrorJson());
//                }
//                else
//                {
//                    return Ok(vm.Entity);
//                }
//            }

//        }

//        [ActionDescription("Sys.Edit")]
//        [HttpPut("Edit")]
//        public IActionResult Edit(TaskItemVM vm)
//        {
//            if (!ModelState.IsValid)
//            {
//                return BadRequest(ModelState.GetErrorJson());
//            }
//            else
//            {
//                vm.DoEdit(false);
//                if (!ModelState.IsValid)
//                {
//                    return BadRequest(ModelState.GetErrorJson());
//                }
//                else
//                {
//                    return Ok(vm.Entity);
//                }
//            }
//        }

//		[HttpPost("BatchDelete")]
//        [ActionDescription("Sys.Delete")]
//        public IActionResult BatchDelete(string[] ids)
//        {
//            var vm = Wtm.CreateVM<TaskItemBatchVM>();
//            if (ids != null && ids.Count() > 0)
//            {
//                vm.Ids = ids;
//            }
//            else
//            {
//                return Ok();
//            }
//            if (!ModelState.IsValid || !vm.DoBatchDelete())
//            {
//                return BadRequest(ModelState.GetErrorJson());
//            }
//            else
//            {
//                return Ok(ids.Count());
//            }
//        }

//        [HttpPost("SetIterationId")]
//        [ActionDescription("添加任务到迭代")]
//        public IActionResult BatchAddToIteration(string[] ids,string iterationId)
//        {
//            var vm = Wtm.CreateVM<TaskItemBatchVM>();
//            if (ids != null && ids.Count() > 0)
//            {
//                vm.Ids = ids;
//            }
//            else
//            {
//                return Ok();
//            }
//            if (!ModelState.IsValid || !vm.DoBatchDelete())
//            {
//                return BadRequest(ModelState.GetErrorJson());
//            }
//            else
//            {
//                return Ok(ids.Count());
//            }
//        }

//        [ActionDescription("Sys.Export")]
//        [HttpPost("ExportExcel")]
//        public IActionResult ExportExcel(TaskItemSearcher searcher)
//        {
//            var vm = Wtm.CreateVM<TaskItemListVM>();
//            vm.Searcher = searcher;
//            vm.SearcherMode = ListVMSearchModeEnum.Export;
//            return vm.GetExportData();
//        }

//        [ActionDescription("Sys.CheckExport")]
//        [HttpPost("ExportExcelByIds")]
//        public IActionResult ExportExcelByIds(string[] ids)
//        {
//            var vm = Wtm.CreateVM<TaskItemListVM>();
//            if (ids != null && ids.Count() > 0)
//            {
//                vm.Ids = new List<string>(ids);
//                vm.SearcherMode = ListVMSearchModeEnum.CheckExport;
//            }
//            return vm.GetExportData();
//        }

//        [ActionDescription("Sys.DownloadTemplate")]
//        [HttpGet("GetExcelTemplate")]
//        public IActionResult GetExcelTemplate()
//        {
//            var vm = Wtm.CreateVM<TaskItemImportVM>();
//            var qs = new Dictionary<string, string>();
//            foreach (var item in Request.Query.Keys)
//            {
//                qs.Add(item, Request.Query[item]);
//            }
//            vm.SetParms(qs);
//            var data = vm.GenerateTemplate(out string fileName);
//            return File(data, "application/vnd.ms-excel", fileName);
//        }

//        [ActionDescription("Sys.Import")]
//        [HttpPost("Import")]
//        public ActionResult Import(TaskItemImportVM vm)
//        {
//            if (vm!=null && (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()))
//            {
//                return BadRequest(vm.GetErrorJson());
//            }
//            else
//            {
//                return Ok(vm?.EntityList?.Count ?? 0);
//            }
//        }


//    }
//}
